$(function() {
	/** 初始化 begin * */
	// 进度条作用
	$(document).ajaxStart(function() {
		Pace.restart();
	});

	// 开启表单验证
	formValidator();
	
	tableTreeListInit();

	// tab初始化
	$('#myTab a:first').tab('show');

	// tab点击事件
	$('#myTab a').click(function(e) {
		e.preventDefault();
		//重置表单
		resetForm();
		
		if($(this).attr("id") == "tabList"){
			$("#tabUpdate").html("角色添加");
		}
		
		$(this).tab('show');
	})

	// 操作按钮点击事件
	$(document).on("click", "#datalist tr td:last-child a", function() {
		var groupId = $(this).parent().parent().find("td").eq(1).html();
		if ($(this).attr("name") == "edit") {
			$("#tabUpdate").html("角色修改");
			getObjectInfo(groupId);
			$("#tabUpdate").click();
		} else if ($(this).attr("name") == "delete") {
			del_data(groupId);
		} else {
			$("#tabUpdate").html("角色添加");
			$("#tabUpdate").click();
		}

	})
	// 菜单名点击事件
	$(document).on("click", "#datalist tr td:first-child a", function() {
		var groupId = $(this).parent().parent().find("td").eq(1).html();
		$("#tabUpdate").html("角色修改");
		$("#tabUpdate").click();
		getObjectInfo(groupId);
	})

	// 取消按钮， 返回到管理页面
	$("#exitsub").click(function() {
		$("#tabUpdate").html("角色添加");
		//重置表单
		resetForm();
		
		// 跳转到相应tab页
		$("#tabList").click();
	});
})

//初始化table树
function tableTreeListInit(){
	// 树形table初始化
	$('#datalist').treegridData({
		id : 'roleId',
		parentColumn : 'parentRoleId',
		parentColumnName : 'roleName',
		type : "GET", // 请求数据的ajax类型
		url : 'treeList', // 请求数据的ajax的url
		ajaxParams : {}, // 请求数据的ajax的data属性
		expandColumn : null,// 在哪一列上面显示展开按钮
		striped : true, // 是否各行渐变色
		bordered : true, // 是否显示边框
		columns : [ {
			title : '角色名',
			field : 'roleName'
		}, {
			title : '角色Id',
			field : 'roleId',
		}, {
			title : '描述',
			field : 'description'
		} ],
		expanderExpandedClass : 'fa fa-caret-down',// 展开的按钮的图标
		expanderCollapsedClass : 'fa fa-caret-right'// 缩起的按钮的图标
	});
}

/**
 * 删除
 * @param rowIds 
 */
function del_data(roleId) {
	var id_array = new Array();
	id_array.push(roleId);
	
	$.ajax({
		url : "deleteByRoleId",
		type : "POST",
		contentType:"application/json",
        dataType:"json",
		data : JSON.stringify(id_array),
		success : function(data) {
			if(data.code == 0){
				// 调用成功提示
				alertDivFadeSet(1, 1000, function() {
					location.href = "index.html";
				});
			}else{
				//调用失败提示
				alertDivFadeSet(2,1000);
			}
		},
		error: function(XMLHttpRequest, textStatus, errorThrown) {
			//调用失败提示
			alertDivFadeSet(2,1000,function(){
				console.log(XMLHttpRequest.status);
				console.log(XMLHttpRequest.readyState);
				console.log(textStatus);
			});
		}
	})
}

// 根据业务id或主键id获取内容
function getObjectInfo(roleId) {
	$.ajax({
		url : "info/" + roleId,
		dataType : "JSON",
		contentType : "APPLICATION/JSON",
		success : function(data) {
			if(data.code == 0){
				$("#roleId").val(data.roleInfo.roleId);
				$("#parentRoleId")
						.val(data.roleInfo.parentRoleId);
				$("#roleName").val(data.roleInfo.roleName);
				$("#description").val(data.roleInfo.description);
			}else{
				// 调用失败提示
				alertDivFadeSet(2, 1000, function() {
					console.log(XMLHttpRequest.status);
					console.log(XMLHttpRequest.readyState);
					console.log(textStatus);
				});
			}
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			// 调用失败提示
			alertDivFadeSet(2, 1000, function() {
				console.log(XMLHttpRequest.status);
				console.log(XMLHttpRequest.readyState);
				console.log(textStatus);
			});
		}
	})
}

//form验证规则
function formValidator() {
	// 表单验证
	$("form").bootstrapValidator({
		message : 'This value is not valid',
		feedbackIcons : {
			valid : 'glyphicon glyphicon-ok',
			invalid : 'glyphicon glyphicon-remove',
			validating : 'glyphicon glyphicon-refresh'
		},
		fields : {
			roleName : {
				message : '角色名称验证失败',
				validators : {
					notEmpty : {
						message : '角色名称不能为空'
					}
				}
			},
			description : {
				message : '角色描述验证失败',
				validators : {
					notEmpty : {
						message : '角色描述不能为空'
					}
				}
			}
		}
	}).on('success.form.bv', function(e) {
		// 阻止默认form事件提交
		e.preventDefault();

		/** ajax提交表单* */
		var d = {};
		$.each(t, function() {
			d[this.name] = this.value;
		});
		$.ajax({
			url : "save",
			dataType : "JSON",
			type : 'POST',
			contentType : "APPLICATION/JSON",
			data : JSON.stringify(d),
			success : function(data) {
				if (data.code == 0) {
					location.href = "index.html";
				} else {
					// 调用失败提示
					alertDivFadeSet(2, 1000);
				}
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				// 调用失败提示
				alertDivFadeSet(2, 1000, function() {
					console.log(XMLHttpRequest.status);
					console.log(XMLHttpRequest.readyState);
					console.log(textStatus);
				});
			}
		})
	});
}

//重置表单，包括内容和校验的样式
function resetForm(){
	// 清空form表单的内容
	$(':input', 'form').not(':button, :submit, :reset, :hidden')
			.val('').removeAttr('checked').removeAttr('selected');
	// 清除表单校验
	$("#frm").data('bootstrapValidator').destroy();
	$('#frm').data('bootstrapValidator', null);
	// 重新验证
	formValidator();
}